package danran.tanxin;

import java.util.Arrays;

/**
 * @Classname MaxProfit2
 * @Description TODO
 * @Date 2021/9/29 10:23
 * @Created by ASUS
 */
public class MaxProfit2 {

    public static void main(String[] args) {
        int[] d = new int[]{1,2,3,4,5};
        System.out.println(new MaxProfit2().maxProfit(d));
    }
    /*
    [7, 1, 5, 6] 第二天买入，第四天卖出，收益最大（6-1），
    所以一般人可能会想，怎么判断不是第三天就卖出了呢?
    这里就把问题复杂化了，根据题目的意思，当天卖出以后，当天还可以买入，
    所以其实可以第三天卖出，第三天买入，第四天又卖出（（5-1）+ （6-5） === 6 - 1）。
    所以算法可以直接简化为只要今天比昨天大，就卖出。
     */
    public int maxProfit(int[] prices) {
        if (prices.length < 2) return 0;
        int[] tmp = new int[prices.length - 1];
        for (int i = 0; i < prices.length - 1; i++) {
            tmp[i] = prices[i + 1] - prices[i];
        }
        return Arrays.stream(tmp).filter(t -> t > 0).sum();
    }
}
